/**
* @file VelPubModule.h
* @author
* @brief
* @version 1.0
* @date 2020-08-11
*
* @copyright Copyright (c) 2020
*
*/

#include "rclcpp/rclcpp.hpp"
#include "geometry_msgs/msg/twist.hpp"
#include <stdio.h>
#include <unistd.h>
#include <termios.h>
#include <map>

namespace behavior_controller
{

class VelPubModule
{
public:
    VelPubModule()
    {};

    VelPubModule(const rclcpp::Node::SharedPtr &ros_node);

    ~VelPubModule() {};

    void VelPub(double linear, double angular);

    void SetNode(const rclcpp::Node::SharedPtr &ros_node);

private:
    rclcpp::Publisher<geometry_msgs::msg::Twist>::SharedPtr vel_pub_ = nullptr;
    rclcpp::Node::SharedPtr ros_node_;
};

//static VelPubModule vel_pub_mod;
extern VelPubModule vel_pub_mod;

} // namespace behavior_controller